package com.mindskip.xzs.service;

import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.domain.dto.admin.exampaper.ExamPaperPageDTO;
import com.mindskip.xzs.domain.dto.admin.exampaper.ExamPaperWithQuestionDTO;
import com.mindskip.xzs.domain.entity.ExamPaper;
import com.mindskip.xzs.domain.vo.admin.exampaper.ExamPaperVO;
import com.mindskip.xzs.domain.vo.admin.exampaper.ExamPaperWithQuestionVO;
import com.mindskip.xzs.domain.vo.student.dashboard.FixedPaper;
import com.mindskip.xzs.domain.vo.student.dashboard.PaperFilter;
import com.mindskip.xzs.domain.vo.student.dashboard.TimeLimitPaper;
import com.mindskip.xzs.domain.vo.student.exampaper.ExamPaperPageVO;

import java.util.List;

public interface ExamPaperService extends BaseService<ExamPaper> {

    // 查询所有试卷总数
    Integer selectAllCount();

    PageInfo<ExamPaperVO> getExamPaperByPage(ExamPaperPageDTO examPaperPageDTO);

    ExamPaperWithQuestionVO getExamPaperWithQuestion(Integer id);

    ExamPaper insertOrUpdateExamPaper(ExamPaperWithQuestionDTO examPaperWithQuestionDTO);

    void softDelete(Integer id);

    PageInfo<ExamPaperVO> taskExamPage(ExamPaperPageDTO examPaperPageDTO);

    List<FixedPaper> indexFixedPaper(PaperFilter paperFilter);

    List<TimeLimitPaper> indexTimeLimitPaper(PaperFilter paperFilter);

    PageInfo<ExamPaperPageVO> getExamPaperByPageStudent(com.mindskip.xzs.domain.dto.student.exampaper.ExamPaperPageDTO examPaperPageDTO);
}
